package com.comun.filtro;

import java.io.Serializable;
import java.util.Map;

import org.hibernate.criterion.Order;

public class FiltroLista implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/** Indicamos los filtros que utiliza. */
	private Map<String, String> filters;
	/** Indicamos el numero de la primera pagina. */
	private Integer first;
	/**
	 * Indicamos si necesitamos obtener el numero total de elementos de la
	 * query.
	 */
	private boolean obtenerTotal = false;
	// private String sortField;
	/** Indicamos el order que queramos. */
	private Order order;
	/** Indicamos el numero de elementos por pagina. */
	private Integer pageSize;

	/** Constructor del filtro con los campos necesarios. */
	public FiltroLista(Integer first, Integer pageSize, Order order, Map<String, String> filters) {
		this.first = first;
		this.pageSize = pageSize;
		// this.sortField = sortField;
		this.order = order;
		this.filters = filters;
	}

	/**
	 * @return the filters
	 */
	public Map<String, String> getFilters() {
		return filters;
	}

	public Integer getFirst() {
		return first;
	}

	public Order getOrder() {
		return order;
	}

	public Integer getPageSize() {
		return pageSize;
	}

	/**
	 * @return the obtenerTotal
	 */
	public boolean isObtenerTotal() {
		return obtenerTotal;
	}

	/**
	 * @param filters
	 *            the filters to set
	 */
	public void setFilters(Map<String, String> filters) {
		this.filters = filters;
	}

	public void setFirst(Integer first) {
		this.first = first;
	}

	/**
	 * @param obtenerTotal
	 *            the obtenerTotal to set
	 */
	public void setObtenerTotal(boolean obtenerTotal) {
		this.obtenerTotal = obtenerTotal;
	}

	public void setOrder(Order order) {
		this.order = order;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

}
